package com.rabbiter.common;

import com.rabbiter.entity.Storage;
import lombok.Data;

import java.util.List;

@Data
public class Result<T>{

    private String code;

    private String msg;

    private T data;

    public static Result success() {
        Result result = new Result();
        result.setCode(ResultCodeNum.SUCCESS.getCode());
        result.setMsg(ResultCodeNum.SUCCESS.getMsg());
        return result;
    }

    /**
     * 返回一个成功的Result对象，包含成功标识码、成功消息和给定的数据。
     *
     * @param data 返回的数据，可以为任意类型
     * @param <T>  数据的类型
     * @return 包含成功信息的Result对象
     */
    public static <T> Result success(T data) {
        Result result = success();
        result.setData(data);
        return result;
    }

    /**
     * 返回一个表示失败的Result对象
     *
     * @return 失败的Result对象
     */
    public static Result fail() {
        Result result = new Result();
        result.setCode(ResultCodeNum.FAIL.getCode());
        result.setMsg(ResultCodeNum.FAIL.getMsg());
        return result;
    }

    public static <T> Result fail(T data) {
        Result result = fail();
        result.setData(data);
        return result;
    }

}